package main
import (
	_"fmt"
)
//channel 是引用类型，必须在make之后才能使用


func main(){
	//管道可以声明为只读/只写
	//默认情况下管道是双向的！
	//var chan1 chan int  //1)可读可写



	var chan2 chan<- int //2)只写
	chan2 = make(chan int,3) //make的时候不需要带上 <- 只读只写代表一种属性，而不是类型!!!!
	chan2 <- 22
	//<- chan2  //会报错，因为这时只写不可读




	var chan3 <-chan int  //3)只读
	chan3 = make(chan int,3)
	<-chan3
	//chan3 <- 22  /会报错，因为这时只读不可写
}



/*
channel的注意事项1：只读只写代表一种属性，而不是类型!!!!
	1、channel可以声明为只读，或只写性质；如上例子 
	2、channel只读和只写性质最佳实践案例        作用就是可以防止误操作！看image/6.png











*/